package com.carbon.core.enums;

/**
 * linux or mac 的 nice 命令常量
 * [-20, 19]
 * -20 最高
 * 19 最低
 * 负数需要 root 权限
 *
 * @author czq
 * @date 2021-07-16
 */
public enum LinuxNiceEnum {
    /**
     * 最高优先级
     */
    HIGHEST_PRIORITY(-20),
    /**
     * 高优先级
     */
    HIGH_PRIORITY(-10),
    /**
     * 默认优先级(非 root 最高优先级)
     */
    DEFAULT_PRIORITY(0),
    /**
     * 较低优先级
     */
    LOW_PRIORITY(10),
    /**
     * 最低优先级
     */
    LOWEST_PRIORITY(19),
    ;

    private final int priority;

    LinuxNiceEnum(int priority) {
        this.priority = priority;
    }

    public int getPriority() {
        return priority;
    }

    public String commandPre() {
        // nice -n 0 exec
        return "nice -n " + this.priority + " ";
    }
}
